In [2]:
Image(filename= "headline.png")
Out[2]:

Introduction

  • Antimicrobial resistance is becoming a worldwide problem

  • Many pathogens are becoming resistant for many different types of antibiotics

  • The institute of advanced studies (IAS) is doing research to the spreading of gonorrhoea in Amsterdam

  • For gonorrhoeae there might be a new antibiotic available within years

  • It is thus important to find a suitable management plan to prevent new resistance

Mathematical model

  • Aim of our research was to build a network model to model the disease spreading
  • Our network models are based on an existing mathematical model by Fingerhurth et al. (2006) [1]
    • Simple network model
    • Stochastic network

Why use a network model?

  • Sexual network portrays the sexual inter-relationships within a group of people and it is possible to study the spread of STIs in the context of social interactions [2]
  • ODEs, in contrast, fail to capture the complexity of connections between cases
  • By using a network a heterogeneous population can be introduced, which adds more detail in the properties of individuals. This can for example be useful in identifying high-risk groups.
  • Adding this heterogeneity can have influence on the disease dynamics [3]
  • Network properties can for example derived from data, in Amsterdam this is for example possible with GGD data

Mathematical model of antibiotic resistance N. gonorrhoeae spread

In [3]:
Image(filename= "math_model.png")
Out[3]:

Figures and plots

In [9]:
plt.figure()
# plt.plot(t, sol_msm[1,:, 0], label='$S_{low}$')
# plt.plot(t, sol_msm[1,:, 1], label='$S_{high}$')
plt.plot(t, sol_msm[1,:, 2], label='$I_{res, low}$')
plt.plot(t, sol_msm[1,:, 3], label='$I_{res, high}$')
plt.plot(t, sol_msm[1,:, 4], label='$I_{sen, low}$')
plt.plot(t, sol_msm[1,:, 5], label='$I_{sen, high}$')

plt.legend(loc='best')
plt.xlabel('t (years)')
plt.title("Epidemic curve MSM group")
plt.ylabel("Fraction of population")
# plt.ylim(0, 1)
plt.xlim(0, 10)
plt.grid()
plt.show()
In [10]:
plt.figure()
# plt.plot(t, sol_msm[1,:, 0], label='$S_{low}$')
# plt.plot(t, sol_msm[1,:, 1], label='$S_{high}$')
plt.plot(t, sol_hmw[1,:, 2], label='$I_{res, low}$')
plt.plot(t, sol_hmw[1,:, 3], label='$I_{res, high}$')
plt.plot(t, sol_hmw[1,:, 4], label='$I_{sen, low}$')
plt.plot(t, sol_hmw[1,:, 5], label='$I_{sen, high}$')

plt.legend(loc='best')
plt.xlabel('t (years)')
plt.title("Epidemic curve HMW group")
plt.ylabel("Fraction of population")
# plt.ylim(0, 1)
plt.xlim(0, 30)
plt.grid()
plt.show()
In [11]:
plt.figure()
ratio_sol_msm = (sol_msm[:,:, 2] + sol_msm[:,:, 3])/(sol_msm[:,:, 2] + sol_msm[:,:, 3] + sol_msm[:,:, 4] + sol_msm[:,:, 5])
plt.plot(t, ratio_sol_msm[1,:], label = "MSM", c = "g",linewidth=1)
plt.fill_between(t,ratio_sol_msm[0,:], ratio_sol_msm[2,:], alpha=0.5, facecolor = "g")
ratio_sol_hmw = (sol_hmw[:,:, 2] + sol_hmw[:,:, 3])/(sol_hmw[:,:, 2] + sol_hmw[:,:, 3] + sol_hmw[:,:, 4] + sol_hmw[:,:, 5])
plt.plot(t, ratio_sol_hmw[1,:], label = "HMW", c = "b",linewidth=1)
plt.fill_between(t,ratio_sol_hmw[0,:], ratio_sol_hmw[2,:], alpha=0.5, facecolor = "b")
plt.legend(loc='best')

plt.xlabel('t (years)')
plt.ylabel("Fraction of infected individuals")
plt.title("Fraction of infecteds with resistant strain")
plt.grid()
plt.ylim(0,1)
plt.show()

Simple Contact network

  • We used a simplified version of the rules in the mathematical model
  • The network is a random erdos renyi network with 500 nodes and an average degree of 10

The parameters in this model are:

  • Spontaneous recovery rate $\nu$
  • Treatment rate $\tau$
  • Hosts develop resistance during treatment with probability $\mu$
  • Transmision probability $\beta$

Model

  • The values for $\tau$ , $\nu$ and $\mu$ are from the mathematical model.
  • $\beta$ < K > (1 - p_inf) = 1

At each timestep each infected node can do the following:

  • It recovers spontaneously
  • It recovers by threatment if not resistant
  • It can infect each neighbours

Build a network

In [13]:
plt.figure()
pos = nx.spring_layout(graph)
nx.draw(graph, pos, node_color='b', node_size=10, with_labels=False)
plt.show()

The dynamics of the model

In [19]:
# plot number of infecteds
t = np.linspace(0,t_tot, num_steps)    
plt.figure()
print("Mean number of infecteds:", np.mean(num_infected))
plt.plot(t, num_infected[0,:], label='all infecteds MSM')
plt.plot(t, num_res[0,:], label='resistant infecteds MSM')
plt.plot(t, num_infected[1,:], label='all infecteds HMW')
plt.xlabel("Time (years)")
plt.ylabel("number of people")
plt.plot(t, num_res[1,:], label='resistant infecteds HMW')
plt.legend()
plt.show()
Mean number of infecteds: 349.70404109589043
In [20]:
plt.figure()
plt.plot(t,num_res[0,:]/num_infected[0,:], label='fraction of resistant strain MSM')
plt.plot(t,num_res[1,:]/num_infected[1,:], label='fraction of resistant strain HMW')
# plt.plot(num_res)
plt.xlabel("Time (years)")
plt.ylabel("Fraction of infected individuals")
plt.legend()
plt.show()

Animation

In [22]:
anim
Out[22]:


Once Loop Reflect

Improvements

  • with lower beta the sensitive population dies out too quickly
  • other types of networks that better models reality

Stochastic network model

The stochastic network model is based on an existing model by Kretzschmar, M. et al. (1996) [4]

The system consists of Persons defined by:

  • Gender (male / female)
  • Age (15 - 64)
  • Sexual activity (high / low)
  • Disease status (uninfected or (non-)resistant (a)symptomatic)

During each timestep, Partnerships are formed between two Persons. A Partnership is defined by:

  • Type (casual or steady)
  • The two Persons involved

The sexual contact network is therefore dynamic in time

Each timestep of the model consists of seven parts:

  1. Partnership formation
  2. Disease transmission
  3. Separation of partnerships
  4. Replacement
  5. Recovery
  6. Treatment
  7. Advance time

Initialize model

  1. Initialize 10,000 Persons of random age. 5% of Persons with age < 35 have high sexual activity
  2. Perform 2,000 iterations to obtain the steady state
  3. Infect 10% of the core group (high sexual activity) with non-resistant asymptomatic disease

The resistant disease enters the system through treatment; treatment will result in contracting the resistant disease with probability 0.01%

Time-evolution towards the steady state

In [26]:
fig
Out[26]:

Time-evolution of the population

In [29]:
fig
Out[29]:

Time-evolution of infecteds over time

In [31]:
fig
Out[31]:

Fraction of resistant infecteds over all infecteds over time

In [33]:
fig
Out[33]:

Infectiousness of the disease ($R_0$)

Although the disease might seem quite infectious, simulations have shown $R_0=0.90 \pm 2.93$ (N=1,000, 95% CI). The spread of the disease is very dependent on where the disease is started. If a person with high sexual activity is infected, it will quickly spread throughout the entire core group whereas a person with low sexual activity may only affect a select few different partners

Animation

In [35]:
anim
Out[35]:


Once Loop Reflect

Conclusions

  • The system of ODE's allowed us to analyse the disease spread using two distinct groups, however it is too simplistic
  • Simple network captures a more realistic discrete modelling case
  • Stochastic network model is the most complex one, it includes many parameters and is closest to the real-life situation

The resistant strain manages to become fully dominant and endemic in all three models!

Future work

  • Addition of MSM to this model will give a more complete representation of real-life situation
  • Stochastic network model can be used to model different tactics to combat the disease spread and guide resistance management strategies
  • Acquisition of more data will provide a better parameter estimation and improve model's analytic power

References

[1] Fingerhuth, S. M., Bonhoeffer, S., Low, N., & Althaus, C. L. (2016). Antibiotic-resistant Neisseria gonorrhoeae spread faster with more treatment, not more sexual partners. PLoS pathogens, 12(5), e1005611.

[2] De, P., Singh, A. E., Wong, T., Yacoub, W., & Jolly, A. M. (2004). Sexual network analysis of a gonorrhoea outbreak. Sexually transmitted infections, 80(4), 280-285.

[3] Bansal, S., Grenfell, B. T., & Meyers, L. A. (2007). When individual behaviour matters: homogeneous and network models in epidemiology. Journal of the Royal Society Interface, 4(16), 879-891.

[4] Kretzschmar, M., van Duynhoven, Y. T., & Severijnen, A. J. (1996). Modeling prevention strategies for gonorrhea and chlamydia using stochastic network simulations. American Journal of Epidemiology, 144(3), 306-317.